/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.msk.wlhy.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.msk.common.utils.DictUtils;
import com.msk.common.utils.NumberFormatUtil;
import com.msk.sys.domain.DataEntity;
import com.msk.sys.domain.Office;
import com.msk.sys.domain.User;
import com.msk.sys.utils.DictMskUtils;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;

/**
 * @author llh
 * @date 2023/6/16
 * @return 
 * @description       
 */
public class LogisticsMsgWaybill extends DataEntity<LogisticsMsgWaybill> {
	/*@Autowired
	private HtSupplierService supplierService;*/
	
	
	private static final long serialVersionUID = 1L;
	private String attstr01;
	private String attstr02;
	private String attstr03;
	private String attstr04;
	
	private String attstr05;
	private String attstr05Alias;
	
	private Date attdate01;
	private Date attdate02;
	private Office company;
	private Office office;
	private String orderId;
    @NotBlank(message = "原始单号不能为空")
    private String originalDocumentNumber;
    private String originalNumber;
    @NotBlank(message = "运单号不能为空")
	private String shippingNoteNumber;
	private String carrier;
	private String unifiedSocialCreditIdentifier;
	private String permitNumber;
    @NotNull(message = "订单生成时间不能为空")
    @NotBlank(message = "业务类型不能为空")
    private String businessTypeCode;
    @NotNull(message = "发车时间不能为空")
	private Date despatchActualDateTime;
    @NotNull(message = "到货时间不能为空")
    private Date goodsReceiptDateTime;
	private String consignor;

	private String consignorCompany;//发货方
	private String personalIdentityDocument;
    @NotBlank(message = "发货地址不能为空")
	private String placeOfLoading;
	private String consignorCountrySubdivisionCode;
	private String consignee;
    private String consigneeCompany;//收货方
    @NotBlank(message = "收货地址不能为空")
	private String goodsReceiptPlace;
	private String consigneeCountrySubdivisionCode;
    @NotNull(message = "运费不能为空")
	private Double totalMonetaryAmount;
    private Double totalMonetaryAmount1;
	private String remark;
    @NotBlank(message = "牌照类型不能为空")
    private String licensePlateTypeCode;
    @Pattern(regexp = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$",message="车牌号不正确")
    @NotBlank(message = "车牌号不能为空")
	private String vehicleNumber;
    @NotBlank(message = "车辆类型不能为空")
	private String vehicleClassificationCode;
    @NotNull(message = "载重不能为空")
	private Double vehicleTonnage;
    @NotBlank(message = "车辆运输证不能为空")
	private String roadTransportCertificateNumber;
	private String trailerVehiclePlateNumber;
	private String driverId;
	private String memberId;

	private String owner;
	private String vehicleinfoPermitNumber;
    @NotBlank(message = "货物名称不能为空")
	private String descriptionOfGoods;
    @NotBlank(message = "货物类型不能为空")
	private String cargoTypeClassificationCode;
    @NotNull(message = "货物重量不能为空")
	private Double goodsItemGrossWeight;
	private Double cube;
    private Double ascube;

	private String totalNumberOfPackages;
	private String freeText;
   
	private String qualificationCertificateNumber1;
	private String telephoneNumber1;
	private String nameOfPerson2;
	private String qualificationCertificateNumber2;
	private String telephoneNumber2;
	private String messageReferenceNumber;
	private String documentName;
	private String documentVersionNumber;
	private String senderCode;
	private String recipientCode;
	private Date messageSendingDateTime;
    private Date messageSendingDateTimeStart;
    private Date messageSendingDateTimeEnd;
	private String messageFunctionCode;
	private String delFlagAlias;		// 转换后的删除标记
	private String businessTypeCodeAlias;		// 转换后的业务类型代码
	private String licensePlateTypeCodeAlias;		// 转换后的牌照类型
	private String vehicleClassificationCodeAlias;		// 转换后的车辆类型
	private String cargoTypeClassificationCodeAlias;		// 转换后的货物类型代码
	private String documentNameAlias;		// 转换后的单证名称
	private String messageFunctionCodeAlias;		// 转换后的报文功能代码 0未发送 9 已发送 5 发送失败
	private String errorMsg;//导入数据的错误信息
	private String status;//订单状态
	private String statusAlias;//订单状态
	private String isBilling;//是否出具发票
	private String isBillingAlias;//是否出具发票
	private String isPay;//是否付款
	private String isPayAlias;//是否付款
	private String startAreaPlace;//起点详细位置
	private String endAreaPlace;//终点详细位置
	private Integer number;//序号
	private String auditType;
	private String applyId;   //申请单ID  
	private String payeeName;//收款人
	private double monetaryAmount;//支付金额
	private String applyCode;
	private String gasolineNumber;
	private String gasolineBalance;
	
	private String vehicleOwnership;
	private String vehicleOwnershipAlias;

	private String evaluateStatus; //评价状态
	private String evaluateId;	//评价ID
	private String evaluateType;	//评价类型
	private String isEvaluate; // 是否评价

	
	 private String nameOfPerson1;
	
	
	private Double newApplyMoney;   //结算货物金额
	private Double newApplyWeight; //结算货物重量
	private String invoiceNumber; //发票号码

	
	private String otherfreightType;
	
	private Double freightMoney;
	private Double cost;//总费用
	
	
	public Double getCost() {
		return cost;
	}



	public void setCost(Double cost) {
		this.cost = cost;
	}


	private String otherfreightTypeAlias;		// 转换后的其他费用类型	
	private Double paid;   //已付


	//add by wlxiang 20200826 货源编号
	private String goodsCode;

	private String orderNo;
	private  String freight;

	//部分导出使用
	private String[] idArray;
	private String totalMonetaryAmountCope;

	private String vehiclePlateColorCode; //车牌颜色
	private String actualCarrierName;//实际承运人名称
	private String actualCarrierBusinessLicense;//实际承运人道路运输经营许可证号
	private String actualCarrierID;//实际承运人统一社会信用代码或证件号码
	private String accountNumber;
	private String bankInformation;
	private String bankLable;
	private String policyNumber  ; //保险单号
	private String insuranceCompanyCode; //保险公司代码
	private String showState;
	private String goodsId;
	private String realGoodsWeight;
    //计价方式 1:吨/公里 2:整车';
    private String priceWay;
    private String priceWayAlias;
	//运距
	private String distance;
	//包装满意度
	private String evaluatePackage;
	//运输安全性
	private String evaluateSafe;
	//服务态度
	private String evaluateAttitude;
	//运输时效性
	private String evaluateFast;
	//运输单ID
	private String transportId;

	public String getTransportId() {
		return transportId;
	}

	public void setTransportId(String transportId) {
		this.transportId = transportId;
	}

	public String getDistance() {
		return distance;
	}

	public void setDistance(String distance) {
		this.distance = distance;
	}

	public String getEvaluatePackage() {
		return evaluatePackage;
	}

	public void setEvaluatePackage(String evaluatePackage) {
		this.evaluatePackage = evaluatePackage;
	}

	public String getEvaluateSafe() {
		return evaluateSafe;
	}

	public void setEvaluateSafe(String evaluateSafe) {
		this.evaluateSafe = evaluateSafe;
	}

	public String getEvaluateAttitude() {
		return evaluateAttitude;
	}

	public void setEvaluateAttitude(String evaluateAttitude) {
		this.evaluateAttitude = evaluateAttitude;
	}

	public String getEvaluateFast() {
		return evaluateFast;
	}

	public void setEvaluateFast(String evaluateFast) {
		this.evaluateFast = evaluateFast;
	}

	public String getEvaluateType() {
		return evaluateType;
	}

	public void setEvaluateType(String evaluateType) {
		this.evaluateType = evaluateType;
	}

	public String getEvaluateStatus() {
		return evaluateStatus;
	}

	public void setEvaluateStatus(String evaluateStatus) {
		this.evaluateStatus = evaluateStatus;
	}

	public String getEvaluateId() {
		return evaluateId;
	}

	public void setEvaluateId(String evaluateId) {
		this.evaluateId = evaluateId;
	}

	public Double getPaid() {
		return paid;
	}



	public void setPaid(Double paid) {
		this.paid = paid;
	}



	public String getOtherfreightTypeAlias() {
		if(StringUtils.isBlank(otherfreightTypeAlias)){
			return DictUtils.getDictLabel(otherfreightType, "otherfreight_type", "");
		}
		return otherfreightTypeAlias;
	}



	public void setOtherfreightTypeAlias(String otherfreightTypeAlias) {
		this.otherfreightTypeAlias = otherfreightTypeAlias;
	}



	public String getOtherfreightType() {
		return otherfreightType;
	}



	public void setOtherfreightType(String otherfreightType) {
		this.otherfreightType = otherfreightType;
	}



	public Double getFreightMoney() {
		return freightMoney;
	}



	public void setFreightMoney(Double freightMoney) {
		this.freightMoney = freightMoney;
	}




	public Double getNewApplyMoney() {
		return newApplyMoney;
	}

	public void setNewApplyMoney(Double newApplyMoney) {
		this.newApplyMoney = newApplyMoney;
	}

	public Double getNewApplyWeight() {
		return newApplyWeight;
	}

	public void setNewApplyWeight(Double newApplyWeight) {
		this.newApplyWeight = newApplyWeight;
	}

	public String getInvoiceNumber() {
		return invoiceNumber;
	}

	public void setInvoiceNumber(String invoiceNumber) {
		this.invoiceNumber = invoiceNumber;
	}

	private String supplierName;//承运商名
	private String supplierId;//承运商id
	
	
	
	public String getSupplierName() {
		return supplierName;
	}

	public void setSupplierName(String supplierName) {
		this.supplierName = supplierName;
	}

	public String getSupplierId() {
		return supplierId;
	}

	public void setSupplierId(String supplierId) {
		this.supplierId = supplierId;
	}


	private User auditUser;
	
	/*private String auditUserName;     //转换审核人姓名
	public String getAuditUserName() {
		return UserUtils.get(auditUser).getName();
	}

	public void setAuditUserName(String auditUserName) {
		this.auditUserName = auditUserName;
	}*/

	public User getAuditUser() {
		return auditUser;
	}

	public void setAuditUser(User auditUser) {
		this.auditUser = auditUser;
	}
	private String createByName; //创建人姓名
	
	
	public String getCreateByName() {
		if (super.getCreateBy() != null) {
			return super.getCreateBy().getName();
		}
		return createByName;
	}

	public void setCreateByName(String createByName) {
		this.createByName = createByName;
	}
	
	
	public LogisticsMsgWaybill() {
		super();
	}

	public LogisticsMsgWaybill(String id){
		super(id);
	}

	@Length(min=0, max=200, message="attstr01长度必须介于 0 和 200 之间")
	public String getAttstr01() {
		return attstr01;
	}

	public void setAttstr01(String attstr01) {
		this.attstr01 = attstr01;
	}
	
	@Length(min=0, max=200, message="attstr02长度必须介于 0 和 200 之间")
	public String getAttstr02() {
		return attstr02;
	}

	public void setAttstr02(String attstr02) {
		this.attstr02 = attstr02;
	}
	
	@Length(min=0, max=200, message="attstr03长度必须介于 0 和 200 之间")
	public String getAttstr03() {
		return attstr03;
	}

	public void setAttstr03(String attstr03) {
		this.attstr03 = attstr03;
	}
	
	@Length(min=0, max=200, message="attstr04长度必须介于 0 和 200 之间")
	public String getAttstr04() {
		return attstr04;
	}

	public void setAttstr04(String attstr04) {
		this.attstr04 = attstr04;
	}
	
	
	@Length(min=0, max=200, message="attstr05长度必须介于 0 和 200 之间")
	public String getAttstr05() {
		return attstr05;
	}

	public void setAttstr05(String attstr05) {
		this.attstr05 = attstr05;
	}
	public String getAttstr05Alias() {
		if(StringUtils.isBlank(attstr05Alias)){
			return DictUtils.getDictLabel(attstr05, "unit_type", "吨");
		}
		return attstr05Alias;
	}

	
	public void setAttstr05Alias(String attstr05Alias) {
		this.attstr05Alias = attstr05Alias;
	}



	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAttdate01() {
		return attdate01;
	}

	public void setAttdate01(Date attdate01) {
		this.attdate01 = attdate01;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAttdate02() {
		return attdate02;
	}

	public void setAttdate02(Date attdate02) {
		this.attdate02 = attdate02;
	}
	
	@Length(min=0, max=64, message="运单id长度必须介于 0 和 64 之间")
	public String getOrderId() {
		return orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}
	
	@Length(min=0, max=64, message="原始单号长度必须介于 0 和 64 之间")
	public String getOriginalDocumentNumber() {
		return originalDocumentNumber;
	}

	public void setOriginalDocumentNumber(String originalDocumentNumber) {
		this.originalDocumentNumber = originalDocumentNumber;
	}
	
	@Length(min=0, max=64, message="托运单号长度必须介于 0 和 64 之间")
	public String getShippingNoteNumber() {
		return shippingNoteNumber;
	}

	public void setShippingNoteNumber(String shippingNoteNumber) {
		this.shippingNoteNumber = shippingNoteNumber;
	}
	
	@Length(min=0, max=255, message="无车承运人长度必须介于 0 和 255 之间")
	public String getCarrier() {
		return carrier;
	}

	public void setCarrier(String carrier) {
		this.carrier = carrier;
	}
	
	@Length(min=0, max=64, message="社会信用代码长度必须介于 0 和 64 之间")
	public String getUnifiedSocialCreditIdentifier() {
		return unifiedSocialCreditIdentifier;
	}

	public void setUnifiedSocialCreditIdentifier(String unifiedSocialCreditIdentifier) {
		this.unifiedSocialCreditIdentifier = unifiedSocialCreditIdentifier;
	}
	
	@Length(min=0, max=64, message="道路运输经营许可证编号长度必须介于 0 和 64 之间")
	public String getPermitNumber() {
		return permitNumber;
	}

	public void setPermitNumber(String permitNumber) {
		this.permitNumber = permitNumber;
	}
	

	
	@Length(min=0, max=255, message="业务类型代码长度必须介于 0 和 255 之间")
	public String getBusinessTypeCode() {
		return businessTypeCode;
	}

	public void setBusinessTypeCode(String businessTypeCode) {
		this.businessTypeCode = businessTypeCode;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getDespatchActualDateTime() {
		return despatchActualDateTime;
	}

	public void setDespatchActualDateTime(Date despatchActualDateTime) {
		this.despatchActualDateTime = despatchActualDateTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getGoodsReceiptDateTime() {
		return goodsReceiptDateTime;
	}

	public void setGoodsReceiptDateTime(Date goodsReceiptDateTime) {
		this.goodsReceiptDateTime = goodsReceiptDateTime;
	}
	
	@Length(min=0, max=255, message="发货人长度必须介于 0 和 255 之间")
	public String getConsignor() {
		return consignor;
	}

	public void setConsignor(String consignor) {
		this.consignor = consignor;
	}
	
	@Length(min=0, max=64, message="发货人身份证号长度必须介于 0 和 64 之间")
	public String getPersonalIdentityDocument() {
		return personalIdentityDocument;
	}

	public void setPersonalIdentityDocument(String personalIdentityDocument) {
		this.personalIdentityDocument = personalIdentityDocument;
	}
	
	@Length(min=0, max=255, message="发货地址长度必须介于 0 和 255 之间")
	public String getPlaceOfLoading() {
		return placeOfLoading;
	}

	public void setPlaceOfLoading(String placeOfLoading) {
		this.placeOfLoading = placeOfLoading;
	}
	
	@Length(min=0, max=255, message="发货地址行政区代码长度必须介于 0 和 255 之间")
	public String getConsignorCountrySubdivisionCode() {
		return consignorCountrySubdivisionCode;
	}

	public void setConsignorCountrySubdivisionCode(String consignorCountrySubdivisionCode) {
		this.consignorCountrySubdivisionCode = consignorCountrySubdivisionCode;
	}
	
	@Length(min=0, max=255, message="收货人长度必须介于 0 和 255 之间")
	public String getConsignee() {
		return consignee;
	}

	public void setConsignee(String consignee) {
		this.consignee = consignee;
	}
	
	@Length(min=0, max=255, message="收货地址长度必须介于 0 和 255 之间")
	public String getGoodsReceiptPlace() {
		return goodsReceiptPlace;
	}

	public void setGoodsReceiptPlace(String goodsReceiptPlace) {
		this.goodsReceiptPlace = goodsReceiptPlace;
	}
	
	@Length(min=0, max=255, message="收货地址行政区代码长度必须介于 0 和 255 之间")
	public String getConsigneeCountrySubdivisionCode() {
		return consigneeCountrySubdivisionCode;
	}

	public void setConsigneeCountrySubdivisionCode(String consigneeCountrySubdivisionCode) {
		this.consigneeCountrySubdivisionCode = consigneeCountrySubdivisionCode;
	}
	
	public Double getTotalMonetaryAmount() {
		return totalMonetaryAmount;
	}

	public void setTotalMonetaryAmount(Double totalMonetaryAmount) {
		this.totalMonetaryAmount = totalMonetaryAmount;
	}
	
	@Length(min=0, max=255, message="金额备注长度必须介于 0 和 255 之间")
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	@Length(min=0, max=32, message="牌照类型长度必须介于 0 和 32 之间")
	public String getLicensePlateTypeCode() {
		return licensePlateTypeCode;
	}

	public void setLicensePlateTypeCode(String licensePlateTypeCode) {
		this.licensePlateTypeCode = licensePlateTypeCode;
	}
	
	@Length(min=0, max=32, message="车牌号长度必须介于 0 和 32 之间")
	public String getVehicleNumber() {
		return vehicleNumber;
	}

	public void setVehicleNumber(String vehicleNumber) {
		this.vehicleNumber = vehicleNumber;
	}
	
	@Length(min=0, max=255, message="车辆类型长度必须介于 0 和 255 之间")
	public String getVehicleClassificationCode() {
		return vehicleClassificationCode;
	}

	public void setVehicleClassificationCode(String vehicleClassificationCode) {
		this.vehicleClassificationCode = vehicleClassificationCode;
	}
	
	public Double getVehicleTonnage() {
		return vehicleTonnage;
	}

	public void setVehicleTonnage(Double vehicleTonnage) {
		this.vehicleTonnage = vehicleTonnage;
	}
	
	@Length(min=0, max=255, message="道路运输证号长度必须介于 0 和 255 之间")
	public String getRoadTransportCertificateNumber() {
		return roadTransportCertificateNumber;
	}

	public void setRoadTransportCertificateNumber(String roadTransportCertificateNumber) {
		this.roadTransportCertificateNumber = roadTransportCertificateNumber;
	}
	
	@Length(min=0, max=32, message="挂车牌照号长度必须介于 0 和 32 之间")
	public String getTrailerVehiclePlateNumber() {
		return trailerVehiclePlateNumber;
	}

	public void setTrailerVehiclePlateNumber(String trailerVehiclePlateNumber) {
		this.trailerVehiclePlateNumber = trailerVehiclePlateNumber;
	}
	
	@Length(min=0, max=255, message="车辆所有人长度必须介于 0 和 255 之间")
	public String getOwner() {
		return owner;
	}

	public void setOwner(String owner) {
		this.owner = owner;
	}
	
	@Length(min=0, max=255, message="车辆许可证编号长度必须介于 0 和 255 之间")
	public String getVehicleinfoPermitNumber() {
		return vehicleinfoPermitNumber;
	}

	public void setVehicleinfoPermitNumber(String vehicleinfoPermitNumber) {
		this.vehicleinfoPermitNumber = vehicleinfoPermitNumber;
	}
	
	@Length(min=0, max=255, message="货物名称长度必须介于 0 和 255 之间")
	public String getDescriptionOfGoods() {
		return descriptionOfGoods;
	}

	public void setDescriptionOfGoods(String descriptionOfGoods) {
		this.descriptionOfGoods = descriptionOfGoods;
	}
	
	@Length(min=0, max=64, message="货物类型代码长度必须介于 0 和 64 之间")
	public String getCargoTypeClassificationCode() {
		return cargoTypeClassificationCode;
	}

	public void setCargoTypeClassificationCode(String cargoTypeClassificationCode) {
		this.cargoTypeClassificationCode = cargoTypeClassificationCode;
	}
	
	public Double getGoodsItemGrossWeight() {
		return goodsItemGrossWeight;
	}

	public void setGoodsItemGrossWeight(Double goodsItemGrossWeight) {
		this.goodsItemGrossWeight = goodsItemGrossWeight;
	}

	public Double getCube() {
		if(cube!=null){
			return cube;
		}
		return ascube;
	}

	public void setCube(Double cube) {
		this.cube = cube;
		this.ascube = cube;
	}

	public Double getAscube() {
		if(ascube!=null){
			return ascube;
		}
		return cube;
	}

	public void setAscube(Double ascube) {
		this.ascube = ascube;
		this.cube = ascube;
	}

	@Length(min=0, max=32, message="总件数长度必须介于 0 和 32 之间")
	public String getTotalNumberOfPackages() {
		return totalNumberOfPackages;
	}

	public void setTotalNumberOfPackages(String totalNumberOfPackages) {
		this.totalNumberOfPackages = totalNumberOfPackages;
	}
	
	@Length(min=0, max=255, message="订单描述长度必须介于 0 和 255 之间")
	public String getFreeText() {
		return freeText;
	}

	public void setFreeText(String freeText) {
		this.freeText = freeText;
	}
	
	@Length(min=0, max=500, message="司机1名称长度必须介于 0 和 500 之间")
	public String getNameOfPerson1() {
		return nameOfPerson1;
	}

	public void setNameOfPerson1(String nameOfPerson1) {
		this.nameOfPerson1 = nameOfPerson1;
	}
	
	@Length(min=0, max=2500, message="司机1驾照号长度必须介于 0 和 2500 之间")
	public String getQualificationCertificateNumber1() {
		return qualificationCertificateNumber1;
	}

	public void setQualificationCertificateNumber1(String qualificationCertificateNumber1) {
		this.qualificationCertificateNumber1 = qualificationCertificateNumber1;
	}
	
	@Length(min=0, max=1200, message="司机1联系方式长度必须介于 0 和 1200 之间")
	public String getTelephoneNumber1() {
		return telephoneNumber1;
	}

	public void setTelephoneNumber1(String telephoneNumber1) {
		this.telephoneNumber1 = telephoneNumber1;
	}
	
	@Length(min=0, max=500, message="司机2名称长度必须介于 0 和 500 之间")
	public String getNameOfPerson2() {
		return nameOfPerson2;
	}

	public void setNameOfPerson2(String nameOfPerson2) {
		this.nameOfPerson2 = nameOfPerson2;
	}
	
	@Length(min=0, max=2500, message="司机2驾照号长度必须介于 0 和 2500 之间")
	public String getQualificationCertificateNumber2() {
		return qualificationCertificateNumber2;
	}

	public void setQualificationCertificateNumber2(String qualificationCertificateNumber2) {
		this.qualificationCertificateNumber2 = qualificationCertificateNumber2;
	}
	
	@Length(min=0, max=1200, message="司机2联系电话长度必须介于 0 和 1200 之间")
	public String getTelephoneNumber2() {
		return telephoneNumber2;
	}

	public void setTelephoneNumber2(String telephoneNumber2) {
		this.telephoneNumber2 = telephoneNumber2;
	}
	
	@Length(min=0, max=64, message="报文参考号UUID长度必须介于 0 和 64 之间")
	public String getMessageReferenceNumber() {
		return messageReferenceNumber;
	}

	public void setMessageReferenceNumber(String messageReferenceNumber) {
		this.messageReferenceNumber = messageReferenceNumber;
	}
	
	@Length(min=0, max=2, message="单证名称长度必须介于 0 和 2 之间")
	public String getDocumentName() {
		return documentName;
	}

	public void setDocumentName(String documentName) {
		this.documentName = documentName;
	}
	
	@Length(min=0, max=64, message="报文版本号长度必须介于 0 和 64 之间")
	public String getDocumentVersionNumber() {
		return documentVersionNumber;
	}

	public void setDocumentVersionNumber(String documentVersionNumber) {
		this.documentVersionNumber = documentVersionNumber;
	}
	
	@Length(min=0, max=64, message="无车承运人物流交换代码长度必须介于 0 和 64 之间")
	public String getSenderCode() {
		return senderCode;
	}

	public void setSenderCode(String senderCode) {
		this.senderCode = senderCode;
	}
	
	@Length(min=0, max=64, message="物流接收交换代码长度必须介于 0 和 64 之间")
	public String getRecipientCode() {
		return recipientCode;
	}

	public void setRecipientCode(String recipientCode) {
		this.recipientCode = recipientCode;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getMessageSendingDateTime() {
		return messageSendingDateTime;
	}

	public void setMessageSendingDateTime(Date messageSendingDateTime) {
		this.messageSendingDateTime = messageSendingDateTime;
	}

	public String getMemberId() {
		return memberId;
	}

	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}

	@Length(min=0, max=2, message="报文功能代码 0未发送 9 已发送 5 发送失败长度必须介于 0 和 2 之间")
	public String getMessageFunctionCode() {
		return messageFunctionCode;
	}

	public void setMessageFunctionCode(String messageFunctionCode) {
		this.messageFunctionCode = messageFunctionCode;
	}
	
	
	public String getDelFlagAlias() {
		if(StringUtils.isBlank(delFlagAlias)){
			return DictUtils.getDictLabel(delFlag, "del_flag", "");
		}
		return delFlagAlias;
	}

	public void setDelFlagAlias(String delFlagAlias) {
		this.delFlagAlias = delFlagAlias;
	}
	public String getBusinessTypeCodeAlias() {
		if(StringUtils.isBlank(businessTypeCodeAlias)){
			return DictUtils.getDictLabel(businessTypeCode, "business_type", "");
		}
		return businessTypeCodeAlias;
	}

	public void setBusinessTypeCodeAlias(String businessTypeCodeAlias) {
		this.businessTypeCodeAlias = businessTypeCodeAlias;
	}
	public String getLicensePlateTypeCodeAlias() {
		if(StringUtils.isBlank(licensePlateTypeCodeAlias)){
			return DictUtils.getDictLabel(licensePlateTypeCode, "car_license_type", "");
		}
		return licensePlateTypeCodeAlias;
	}

	public void setLicensePlateTypeCodeAlias(String licensePlateTypeCodeAlias) {
		this.licensePlateTypeCodeAlias = licensePlateTypeCodeAlias;
	}
	public String getVehicleClassificationCodeAlias() {
		if(StringUtils.isBlank(vehicleClassificationCodeAlias)){
			return DictUtils.getDictLabel(vehicleClassificationCode, "car_type", "");
		}
		return vehicleClassificationCodeAlias;
	}

	public void setVehicleClassificationCodeAlias(String vehicleClassificationCodeAlias) {
		this.vehicleClassificationCodeAlias = vehicleClassificationCodeAlias;
	}
	public String getCargoTypeClassificationCodeAlias() {
		if(StringUtils.isBlank(cargoTypeClassificationCodeAlias)){
			return DictUtils.getDictLabel(cargoTypeClassificationCode, "goods_type", "");
		}
		return cargoTypeClassificationCodeAlias;
	}

	public void setCargoTypeClassificationCodeAlias(String cargoTypeClassificationCodeAlias) {
		this.cargoTypeClassificationCodeAlias = cargoTypeClassificationCodeAlias;
	}
	public String getDocumentNameAlias() {
		if(StringUtils.isBlank(documentNameAlias)){
			return DictUtils.getDictLabel(documentName, "document_name_type", "");
		}
		return documentNameAlias;
	}

	public void setDocumentNameAlias(String documentNameAlias) {
		this.documentNameAlias = documentNameAlias;
	}
	public String getMessageFunctionCodeAlias() {
		if(StringUtils.isBlank(messageFunctionCodeAlias)){
			return DictUtils.getDictLabel(messageFunctionCode, "msg_function_code", "");
		}
		return messageFunctionCodeAlias;
	}

	public void setMessageFunctionCodeAlias(String messageFunctionCodeAlias) {
		this.messageFunctionCodeAlias = messageFunctionCodeAlias;
	}
	
	public String getErrorMsg() {
		return errorMsg;
	}

	public void setErrorMsg(String errorMsg) {
		this.errorMsg = errorMsg;
	}

	
	public String getLogTitle() {
		return "电子运单";
	}
	
	

	public Office getCompany() {
		return company;
	}

	public void setCompany(Office company) {
		this.company = company;
	}

	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}

	public Date getMessageSendingDateTimeStart() {
		return messageSendingDateTimeStart;
	}

	public void setMessageSendingDateTimeStart(Date messageSendingDateTimeStart) {
		this.messageSendingDateTimeStart = messageSendingDateTimeStart;
	}

	public Date getMessageSendingDateTimeEnd() {
		return messageSendingDateTimeEnd;
	}

	public void setMessageSendingDateTimeEnd(Date messageSendingDateTimeEnd) {
		this.messageSendingDateTimeEnd = messageSendingDateTimeEnd;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getStatusAlias() {
		if(StringUtils.isBlank(statusAlias)){
			return DictUtils.getDictLabel(status, "car_status1", "");
		}
		return statusAlias;
	}

	public String getDriverId() {
		return driverId;
	}

	public void setDriverId(String driverId) {
		this.driverId = driverId;
	}

	public void setStatusAlias(String statusAlias) {
		this.statusAlias = statusAlias;
	}

	public String getIsBilling() {
		return isBilling;
	}

	public void setIsBilling(String isBilling) {
		this.isBilling = isBilling;
	}

	public String getIsBillingAlias() {
		if(StringUtils.isBlank(isBillingAlias)){
			return DictUtils.getDictLabel(isBilling, "invoice_type", "");
		}
		return isBillingAlias;
	}
	public String getIsPayAlias() {
		if(StringUtils.isBlank(isPayAlias)){
			return DictUtils.getDictLabel(isPay, "is_pay", "未支付");
		}
		return isPayAlias;
	}

	public String getIsEvaluate() {
		if(StringUtils.isBlank(isEvaluate)){
			return DictMskUtils.getDictLabel(evaluateStatus, "is_evaluate", "未评价");
		}
		return isEvaluate;
	}

	public void setIsEvaluate(String isEvaluate) {
		this.isEvaluate = isEvaluate;
	}

	public void setIsBillingAlias(String isBillingAlias) {
		this.isBillingAlias = isBillingAlias;
	}

	public String getIsPay() {
		return isPay;
	}

	public void setIsPay(String isPay) {
		this.isPay = isPay;
	}

	public String getStartAreaPlace() {
		return startAreaPlace;
	}

	public void setStartAreaPlace(String startAreaPlace) {
		this.startAreaPlace = startAreaPlace;
	}

	public String getEndAreaPlace() {
		return endAreaPlace;
	}

	public void setEndAreaPlace(String endAreaPlace) {
		this.endAreaPlace = endAreaPlace;
	}

	public Integer getNumber() {
		return number;
	}

	public void setNumber(Integer number) {
		this.number = number;
	}

	public String getAuditType() {
		return auditType;
	}

	public void setAuditType(String auditType) {
		this.auditType = auditType;
	}

	public String getApplyId() {
		return applyId;
	}

	public void setApplyId(String applyId) {
		this.applyId = applyId;
	}

	public void setIsPayAlias(String isPayAlias) {
		this.isPayAlias = isPayAlias;
	}

	public String getPayeeName() {
		return payeeName;
	}

	public void setPayeeName(String payeeName) {
		this.payeeName = payeeName;
	}

	public double getMonetaryAmount() {
		return monetaryAmount;
	}

	public void setMonetaryAmount(double monetaryAmount) {
		this.monetaryAmount = monetaryAmount;
	}

	public String getApplyCode() {
		return applyCode;
	}

	public void setApplyCode(String applyCode) {
		this.applyCode = applyCode;
	}

	public String getGasolineNumber() {
		return gasolineNumber;
	}

	public void setGasolineNumber(String gasolineNumber) {
		this.gasolineNumber = gasolineNumber;
	}

	public String getGasolineBalance() {
		return gasolineBalance;
	}

	public void setGasolineBalance(String gasolineBalance) {
		this.gasolineBalance = gasolineBalance;
	}



	public String getOriginalNumber() {
		return originalNumber;
	}



	public void setOriginalNumber(String originalNumber) {
		this.originalNumber = originalNumber;
	}
	public String getVehicleOwnership() {
		return vehicleOwnership;
	}

	public void setVehicleOwnership(String vehicleOwnership) {
		this.vehicleOwnership = vehicleOwnership;
	}

	public String getVehicleOwnershipAlias() {
		if (StringUtils.isBlank(vehicleOwnershipAlias)) {
			return DictUtils.getDictLabel(vehicleOwnership, "vehicle_ownership", "");
		}
		return vehicleOwnershipAlias;
	}

	public void setVehicleOwnershipAlias(String vehicleOwnershipAlias) {
		this.vehicleOwnershipAlias = vehicleOwnershipAlias;
	}

	public Double getTotalMonetaryAmount1() {
		return totalMonetaryAmount1;
	}

	public void setTotalMonetaryAmount1(Double totalMonetaryAmount1) {
		this.totalMonetaryAmount1 = totalMonetaryAmount1;
	}

	public String getGoodsCode() {
		return goodsCode;
	}

	public void setGoodsCode(String goodsCode) {
		this.goodsCode = goodsCode;
	}

	public String getFreight() {
		return freight;
	}

	public void setFreight(String freight) {
		this.freight = freight;
	}

	public String getConsignorCompany() {
		return consignorCompany;
	}

	public void setConsignorCompany(String consignorCompany) {
		this.consignorCompany = consignorCompany;
	}

	public String getConsigneeCompany() {
		return consigneeCompany;
	}

	public void setConsigneeCompany(String consigneeCompany) {
		this.consigneeCompany = consigneeCompany;
	}

	public String[] getIdArray() {
		return idArray;
	}

	public void setIdArray(String[] idArray) {
		this.idArray = idArray;
	}

	public String getTotalMonetaryAmountCope() {
		if (StringUtils.isNotBlank(gasolineBalance)) {
			String resultGasolineBalance = "";
			if (totalMonetaryAmount1 != null && Double.parseDouble(gasolineBalance) - totalMonetaryAmount1 >= 0) {
				resultGasolineBalance = "0";
			} else if(null != totalMonetaryAmount1 && StringUtils.isNotBlank(gasolineBalance)){
				Double totalMonetary = totalMonetaryAmount1 - Double.parseDouble(gasolineBalance);
				resultGasolineBalance =  NumberFormatUtil.numberFormat(totalMonetary,2);
			}
			return resultGasolineBalance;
		} else {
			if(totalMonetaryAmount1 == null){
				return "0";
			}
			return NumberFormatUtil.numberFormat(totalMonetaryAmount1,2);
		}
	}

	public void setTotalMonetaryAmountCope(String totalMonetaryAmountCope) {
		this.totalMonetaryAmountCope = totalMonetaryAmountCope;
	}

	public String getVehiclePlateColorCode() {
		return vehiclePlateColorCode;
	}

	public void setVehiclePlateColorCode(String vehiclePlateColorCode) {
		this.vehiclePlateColorCode = vehiclePlateColorCode;
	}

	public String getActualCarrierName() {
		return actualCarrierName;
	}

	public void setActualCarrierName(String actualCarrierName) {
		this.actualCarrierName = actualCarrierName;
	}

	public String getActualCarrierBusinessLicense() {
		return actualCarrierBusinessLicense;
	}

	public void setActualCarrierBusinessLicense(String actualCarrierBusinessLicense) {
		this.actualCarrierBusinessLicense = actualCarrierBusinessLicense;
	}

	public String getActualCarrierID() {
		return actualCarrierID;
	}

	public void setActualCarrierID(String actualCarrierID) {
		this.actualCarrierID = actualCarrierID;
	}

	public String getAccountNumber() {
		return accountNumber;
	}

	public void setAccountNumber(String accountNumber) {
		this.accountNumber = accountNumber;
	}

	public String getBankInformation() {
		return bankInformation;
	}

	public void setBankInformation(String bankInformation) {
		this.bankInformation = bankInformation;
	}

	public String getBankLable() {
		return bankLable;
	}

	public void setBankLable(String bankLable) {
		this.bankLable = bankLable;
	}

	public String getPolicyNumber() {
		return policyNumber;
	}

	public void setPolicyNumber(String policyNumber) {
		this.policyNumber = policyNumber;
	}

	public String getInsuranceCompanyCode() {
		return insuranceCompanyCode;
	}

	public void setInsuranceCompanyCode(String insuranceCompanyCode) {
		this.insuranceCompanyCode = insuranceCompanyCode;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getShowState() {
		return showState;
	}

	public void setShowState(String showState) {
		this.showState = showState;
	}

	public String getGoodsId() {
		return goodsId;
	}

	public void setGoodsId(String goodsId) {
		this.goodsId = goodsId;
	}

	public String getRealGoodsWeight() {
		return realGoodsWeight;
	}

	public void setRealGoodsWeight(String realGoodsWeight) {
		this.realGoodsWeight = realGoodsWeight;
	}

    public String getPriceWay() {
        return priceWay;
    }

    public void setPriceWay(String priceWay) {
        this.priceWay = priceWay;
    }

    public String getPriceWayAlias() {
        if (StringUtils.isNotBlank(priceWay)) {
            priceWayAlias = DictUtils.getDictLabel(priceWay, "price_way", "");
        }else{
            priceWayAlias = "吨公里";
        }
        return priceWayAlias;
    }

    public void setPriceWayAlias(String priceWayAlias) {
        this.priceWayAlias = priceWayAlias;
    }
}